 /*
 *  *Target：将结构体中的数据写入到链表中
 *  *Author：王力
 *  *Date：2017.7.18
 *    
 */
#include "project.h"
typedef struct linklist{
	sendEnv data;
	struct linklist *next;
}linklist_t;

linklist_t *create_linklist()
{
	linklist_t *l = (linklist_t *)malloc(sizeof(linklist_t));
	if( l == NULL )
	{
		printf("pthread_insert_linklist:malloc error1\n");
		return NULL;
	}
	l->next = NULL;
	return l;
}

int insert_linklist(linklist_t *l, sendEnv buf)
{
	linklist_t *node = (linklist_t *)malloc(sizeof(linklist_t));
	if(node == NULL)
	{
		printf("pthread_insert_linklist:malloc error2\n");
		return 0;
	}
	node->data = buf;
	node->next = NULL;
	linklist_t *p = l;
	while(p->next)
	{
		p = p->next;
	}
	p->next = node;
	return 1;
}


int show_linklist(linklist_t *l)
{
	linklist_t *p = l;
	while(p->next != NULL)
	{
		printf("%uF\n",p->next->data.temp[0]);
		p = p->next;
	}
	return 1;
}


void *pthread_insert_linklist()
{
	linklist_t *l;
	l = create_linklist();

	int i = 0;
	while(1)
	{
		pthread_mutex_lock(&mutex);
		pthread_cond_wait(&notempty, &mutex);
		printf("%d-----insert_lock------------ \n",++i);

		insert_linklist(l, myEnv);
		printf("insert_linklist success!!!\n");
		pthread_mutex_unlock(&mutex);
	}
}
